import type { Directive } from "vue";

// 自定义指令 1：简单的日志输出指令
export const directives: Record<string, Directive> = {
  log: {
    // 在绑定元素的 attribute 前或事件监听器应用前调用
    // created(el, binding) {
    //   console.log("created", el, binding);
    // },
    // 在元素被插入到 DOM 前调用
    // beforeMount(el, binding, vnode) {
    //   console.log("beforeMount", el, binding, vnode);
    // },
    // // 在绑定元素的父组件
    // // 及他自己的所有子节点都挂载完成后调用
    mounted(el, binding) {
      console.log(binding);
      console.dir(el);
    },
    // // 绑定元素的父组件更新前调用
    // beforeUpdate(el, binding, vnode, prevVnode) {
    //   console.log("beforeUpdate", el, binding, vnode, prevVnode);
    // },
    // // 在绑定元素的父组件
    // // 及他自己的所有子节点都更新后调用
    // updated(el, binding, vnode, prevVnode) {
    //   console.log("updated", el, binding, vnode, prevVnode);
    // },
    // // 绑定元素的父组件卸载前调用
    // beforeUnmount(el, binding, vnode) {
    //   console.log("beforeUnmount", el, binding, vnode);
    // },
    // // 绑定元素的父组件卸载后调用
    // unmounted(el, binding, vnode) {
    //   console.log("unmounted", el, binding, vnode);
    // },
  },
};
